package com.langgan.base.mybase;


import static com.tencent.mmkv.MMKV.MULTI_PROCESS_MODE;

import android.app.Application;
import android.content.Context;
import android.content.pm.ApplicationInfo;


import com.alibaba.android.arouter.launcher.ARouter;
import com.tencent.mmkv.MMKV;

/**
 * @brief
 * @author Beichen
 * @date 2021-12-01
 */
 public class BaseApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        MMKV.initialize(this);
        MMKV.mmkvWithID("xbc", MULTI_PROCESS_MODE);

        initRouter();

    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
//        MultiDex.install(this);
    }
    private void initRouter() {
        //这两行必须写在init之前，否则这些配置在init过程中无效
        if (BaseApplication.isDebugApp(this)) {//第三方工具判断是否是Debug 或者BuildConfig.DEBUG
            //打印日志
            ARouter.openLog();
            //开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险）
            ARouter.openDebug();
        }
        ARouter.init(this);

    }

    /**
     * 是否为DeBug模式
     * @param context
     * @return
     */
    public static boolean isDebugApp(Context context) {
        try {
            ApplicationInfo info = context.getApplicationInfo();
            return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
        } catch (Exception x) {
            return false;
        }
    }

}
